﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="ClassRootType.cs" company="TechBits">
//   Copyright (c) TechBits. All rights reserved.
// </copyright>
// <author>
//   Leandro G Vacirca.
// </author>
// <summary>
//   Defines the ClassRootTypeEnum type.
// </summary>
// --------------------------------------------------------------------------------------------------------------------

namespace IntelliShortCut.Data
{
    using System.Collections.Generic;

    /// <summary>
    /// Contains the shell root menues paths.
    /// </summary>
    public static class ClassRootType
    {
        /// <summary>
        /// Shell root menu for exe files.
        /// </summary>
        private const string EXE_FILES = "exefile\\shell\\";

        /// <summary>
        /// Sheel root menu for msc files.
        /// </summary>
        /// <remarks>
        /// Microsoft Common Console Document Files.
        /// </remarks>
        private const string MSC_FILES = "mscfile\\shell\\";

        /// <summary>
        /// Shell root menu for lnk files.
        /// </summary>
        /// <remarks>
        /// Windows Shortcuts.
        /// </remarks>
        private const string LNK_FILES = "lnkfile\\shell\\";

        /// <summary>
        /// Shell root menu for folders.
        /// </summary>
        private const string FOLDERS = "directory\\shell\\";

        /// <summary>
        /// Class root type ids.
        /// </summary>
        public enum ClassRootTypeEnum
        {
            /// <summary>
            /// Exe files id.
            /// </summary>
            ExeFiles = 1,

            /// <summary>
            /// Msc files id.
            /// </summary>
            MscFiles = 2,

            /// <summary>
            /// Lnk files id.
            /// </summary>
            LnkFiles = 3,

            /// <summary>
            /// FOLDERS id.
            /// </summary>
            Folders = 4
        }

        /// <summary>
        /// Returns all shell root menues.
        /// </summary>
        /// <returns>
        /// All shell root menues defined.
        /// </returns>
        public static List<ClassRootTypeData> GetAll()
        {
            return new List<ClassRootTypeData>
                       {
                           new ClassRootTypeData
                               {
                                   Id = (int) ClassRootTypeEnum.ExeFiles,
                                   Extension = ".exe",
                                   Path = EXE_FILES
                               },
                           new ClassRootTypeData
                               {
                                   Id = (int) ClassRootTypeEnum.MscFiles,
                                   Extension = ".msc",
                                   Path = MSC_FILES
                               },
                           new ClassRootTypeData
                               {
                                   Id = (int) ClassRootTypeEnum.Folders,
                                   Extension = string.Empty,
                                   Path = FOLDERS
                               },
                       };
        }
    }
}
        